package tests;

import common.Utils;
import org.openqa.selenium.By;

public class LoginPage extends Utils {
    public static String url = "http://47.93.222.41:58080/sign-in.html";
    public LoginPage() {
        super(url);
    }

    /*
            检查页面是否加载成功
     */
    public void loginPageRight() throws InterruptedException {
//        查看图标在不在
        driver.findElement(By.cssSelector("body > div > div > div > div:nth-child(1) > div > div.text-center.mb-4 > img"));
//        Thread.sleep(3000);
//        查看用户登录在不在
        driver.findElement(By.cssSelector("body > div > div > div > div:nth-child(1) > div > div.card.card-md > div > h2"));
//        Thread.sleep(3000);
//        driver.quit();
    }

    /*
            检查登录功能 - 成功登录
     */
    public void loginSuccess() throws InterruptedException {
//        输入账号密码
        driver.findElement(By.cssSelector("#username")).sendKeys("Tongqihan");
        driver.findElement(By.cssSelector("#password")).sendKeys("2003Tqh0506");
//        点击登录
        driver.findElement(By.cssSelector("#submit")).click();
//        检查点击登录之后是否登录成功
//        1.检查"首页"这个元素在不在
        driver.findElement(By.cssSelector("#nav_board_index > a > span.nav-link-title"));
//        2.检查URL判断是否登录成功
        String expect = driver.getCurrentUrl();
        assert expect.equals("http://47.93.222.41:58080/index.html");
//        Thread.sleep(3000);
//        driver.quit();
        driver.navigate().back();
    }

    /*
    检查登录功能 - 登录失败 - 用户名和密码都为空
     */
    public void loginFail1() throws InterruptedException {
//        通过clear保证输入框没有文本信息
        driver.findElement(By.cssSelector("#username")).clear();
        driver.findElement(By.cssSelector("#password")).clear();
//        通过刷新
        driver.navigate().refresh();
//        输入正确的账号，密码为空
        driver.findElement(By.cssSelector("#username")).sendKeys("");
        driver.findElement(By.cssSelector("#password")).sendKeys("");
//        点击登录
        driver.findElement(By.cssSelector("#submit")).click();
//        检查点击登录之后是否登录成功
//        1.检查"首页"这个元素在不在
        String expect1 = driver.findElement(By.cssSelector("#signInForm > div.mb-3 > div")).getText();
        assert expect1.equals("用户名不能为空");
        String expect2 = driver.findElement(By.cssSelector("#signInForm > div.mb-2 > div > div")).getText();
        assert expect2.equals("密码不能为空");
    }

    /*
    检查登录功能 - 登录失败 - 用户名为空
     */
    public void loginFail2() throws InterruptedException {
        driver.navigate().refresh();
//        输入正确的账号，密码为空
        driver.findElement(By.cssSelector("#username")).sendKeys("");
        driver.findElement(By.cssSelector("#password")).sendKeys("2003Tqh0506");
//        点击登录
        driver.findElement(By.cssSelector("#submit")).click();
//        检查点击登录之后是否登录成功
        String expect1 = driver.findElement(By.cssSelector("#signInForm > div.mb-3 > div")).getText();
        assert expect1.equals("用户名不能为空");
    }

    /*
    检查登录功能 - 登录失败 - 密码为空
     */
    public void loginFail3() throws InterruptedException {
        driver.navigate().refresh();
//        输入正确的账号，密码为空
        driver.findElement(By.cssSelector("#username")).sendKeys("Tongqihan");
        driver.findElement(By.cssSelector("#password")).sendKeys("");
//        点击登录
        driver.findElement(By.cssSelector("#submit")).click();
//        检查点击登录之后是否登录成功
        String expect2 = driver.findElement(By.cssSelector("#signInForm > div.mb-2 > div > div")).getText();
        assert expect2.equals("密码不能为空");
    }

    /*
    检查登录功能 - 登录失败 - 用户名错误
     */
    public void loginFail4() throws InterruptedException {
        driver.navigate().refresh();
//        输入正确的账号，密码为空
        driver.findElement(By.cssSelector("#username")).sendKeys("admin");
        driver.findElement(By.cssSelector("#password")).sendKeys("2003Tqh0506");
//        点击登录
        driver.findElement(By.cssSelector("#submit")).click();
//        检查点击登录之后是否登录成功
//        弹窗提示用户名或密码错误
        String expect3 = driver.findElement(By.cssSelector("body > div.jq-toast-wrap.bottom-right>div")).getText();
        assert expect3.equals("×\n警告\n用户名或密码错误");
    }

    /*
    检查登录功能 - 登录失败 - 密码错误
     */
    public void loginFail5() throws InterruptedException {
        driver.navigate().refresh();
//        输入正确的账号，密码为空
        driver.findElement(By.cssSelector("#username")).sendKeys("Tongqihan");
        driver.findElement(By.cssSelector("#password")).sendKeys("123");
//        点击登录
        driver.findElement(By.cssSelector("#submit")).click();
//        检查点击登录之后是否登录成功
//        弹窗提示用户名或密码错误
        String expect3 = driver.findElement(By.cssSelector("body > div.jq-toast-wrap.bottom-right>div")).getText();
        assert expect3.equals("×\n警告\n用户名或密码错误");
    }

    /*
    检查登录功能 - 登录失败 - 用户名和密码都错误
     */
    public void loginFail6() throws InterruptedException {
        driver.navigate().refresh();
//        输入正确的账号，密码为空
        driver.findElement(By.cssSelector("#username")).sendKeys("admin");
        driver.findElement(By.cssSelector("#password")).sendKeys("123");
//        点击登录
        driver.findElement(By.cssSelector("#submit")).click();
//        检查点击登录之后是否登录成功
//        弹窗提示用户名或密码错误
        String expect3 = driver.findElement(By.cssSelector("body > div.jq-toast-wrap.bottom-right>div")).getText();
        assert expect3.equals("×\n警告\n用户名或密码错误");
    }
}
